<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var name = 'window里的name'
         function fun(a,b){
            console.log('我是:', this.name);
            console.log('age:',a);
            console.log('qq_num:',b)
         }  
         obj1 = {
            name:'suliang'
         }
         obj2 = {
            name:'xiaoming'
         }

         fun.bind(obj1,20,'787991021')();
        


        //  fun.call(obj1,18,'787991021'); //当使用call方法向函数中传递参数时，以列表的形式传递。
        //  fun.apply(obj2,[19,'2544722208']) //当使用apply方法向函数中传递参数时，必须要以数组的形式传递。
        


        //  fun(obj1); //通过函数调用，this永远指向window
        //  fun.call(obj1); //通过call方法调用，this指向传入的对象。
        //  fun.call(obj2);
        //  fun.apply(obj1); //同理，通过apply方法调用，this指向传入的对象。
        //  fun.apply(obj2);


        //  fun(); //以函数调用时，this指向window
        //  fun.call(); //不传递参数时和函数调用一致，this指向window
        //  fun.apply(); //不传递参数时和函数调用一致，this指向window
        

    </script>
</head>
<body>
    
</body>
</html>